zurück im Curriculum Programmentwicklungweiter im Curriculum ProgrammentwicklungWiederholung Zusammenfassung ?

Ohne Wiederholungs- und Entscheidungsanweisungen wären viele Aufgaben nur umständlich oder überhaupt nicht programmierbar:

Die Wiederholungsaufgabe liesse sich - allerdings umständlich - mit den Operatoren = und + programmieren (Summe = 1 + 2 + ... + 1000). Die Wiederholungsanweisung Do While ... Loop erleichtert die Aufgabe (engl. loop heisst Schleife):

Zahl = 1                  ‘ 1 (' beginnt einen Kommentar bis an das Ende der Zeile) 
Summe = 0                 ‘ 2
Do While Zahl <= 1000     ‘ 3
  Summe = Summe + Zahl    ‘ 4
  Zahl = Zahl + 1         ‘ 5
Loop                      ‘ 6

Die Zeilen 1 und 2 weisen dem Wiederholungszähler Zahl und der Aggregationsvariablen Summe die Anfangswerte 1 und 0 zu. Solange Zahl kleiner oder gleich 1000 ist, wird die Schleife betreten (Zeile 3). In der Schleife wird jedesmal der laufende Wert von Zahl zur Summe addiert und dann Zahl um 1 erhöht (Zeilen 4 und 5). Gilt die Bedingung nach dem Schlüsselwort While nicht mehr, so springt das Programm nach dem Schlüsselwort Loop nicht mehr zur Zeile 3 zurück (Zeile 6), sondern fährt mit der nächsten Zeile fort.

Das Beispiel lässt sich verallgemeinern:

<Initialisierung>
Do While <Ausführungsbedingung>
    <Schleifenkörper>
Loop

Nach der Initialisierung der Variablen, die in der Schleife geändert werden, wiederholt das Programm die Anweisungen in der Schleife so lange, bis die Ausführungsbedingung nicht mehr zutrifft. Fehler schleichen sich vor allem an den folgenden Positionen einer Wiederholungsanweisung ein:

a) Initialisierung

Zahl = 1
Summe = 1               ‘ Initialisierungsfehler!
Do While Zahl <= 1000
  Summe = Summe + Zahl
  Zahl = Zahl + 1
Loop

b) Schleifenbedingung

Zahl = 1
Summe = 0
Do While Zahl < 1000    ‘ Bedingungsfehler!
  Summe = Summe + Zahl
  Zahl = Zahl + 1
Loop

c) Schleifenkörper

Zahl = 1
Summe = 0
Do While Zahl <= 1000
  Zahl = Zahl + 1        Zählfehler! (Reihenfolge)
  Summe = Summe + Zahl  ‘ Aggregationsfehler! (Reihenfolge)
Loop

Jeder dieser Fehler lässt sich durch eine Korrektur der Initialisierungsphase, der Schleifenbedingung oder der Reihenfolge der Schleifenanweisungen beheben.

Aufgabe Korrigieren Sie die obigen Fehler, indem Sie die fehlerhafte Zeile belassen, aber den übrigen Code ändern.


Aufgabe Wiederholungs- und Entscheidungsanweisung
Entscheidungsanweisungen